#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

//class Solution {
//public:
//    int removeDuplicates(vector<int>& nums) {
//        for (int i = 0; i < nums.size() - 1; )
//        {
//            if (nums[i] == nums[i + 1])
//            {
//                auto pos = find(nums.begin(), nums.end(), nums[i]);
//                pos = nums.erase(pos);
//            }
//            else
//                i++;
//        }
//        return nums.size();
//    }
//};
//class Solution {
//public:
//    int singleNumber(vector<int>& nums) {
//        sort(nums.begin(), nums.end());
//        int flag;
//        if (nums.size() == 1)
//            return nums[0];
//        for (int i = 0; i < nums.size(); )
//        {
//            if (nums[i] == nums[i + 1])
//            {
//                auto pos = find(nums.begin(), nums.end(), nums[i]);
//                nums.erase(pos, pos + 2);
//            }
//            else
//                flag = nums[i];
//            i++;
//        }
//        return flag;
//    }
//};
class Solution {
public:
    vector<int> singleNumber(vector<int>& nums) {
        sort(nums.begin(), nums.end());
        for (int i = 0; i < nums.size() - 1; )
        {
            if (nums[i] == nums[i + 1])
            {
                auto pos = find(nums.begin(), nums.end(), nums[i]);
                nums.erase(pos, pos + 2);
            }
            else
                i++;
        }
        return nums;
    }
};

int main()
{
    vector<int> nums{ 1,1,1,3 };
    sort(nums.begin(), nums.end());
    int flag=0;
    if (nums.size() == 1)
        return nums[0];
    for (int i = 0; i < nums.size()-1; )
    {
        if (nums[i] == nums[i + 1])
        {
            auto pos = find(nums.begin(), nums.end(), nums[i]);
            nums.erase(pos, pos + 3);
        }
        if(nums.size()==1)
        {
            flag = nums[0];
        }
        else if (nums[i] != nums[i + 1])
        {
            flag = nums[i];
            i++;
        }
    }
    cout << flag << endl;
    return 0;
}